package org.wangchaocheng.cloudgallery.enums.user;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 用户认证类型枚举
 *
 * @author wangchaocheng
 * @date 2025/04/08
 */
@Getter
@AllArgsConstructor
public enum UserAuthTypeEnum {

    /**
     * 账号(用户名，手机号，邮箱) + 密码认证
     */
    USERNAME("PasswordAuthenticationStrategy"),

    /**
     * 手机号 + 短信验证码
     */
    PHONE_NUMBER("PhoneAuthenticationStrategy"),

    /**
     * 邮箱 + 验证码
     */
    EMAIL("EmailAuthenticationStrategy"),

    /**
     * 微信
     */
    WECHAT(""),

    /**
     * QQ
     */
    QQ(""),


    /**
     * Github
     */
    GITHUB(""),

    /**
     * Gitee
     */
    GITEE(""),

    /**
     * 微博
     */
    WEIBO(""),

    ;

    /**
     * 认证策略bean名称
     */
    private final String authStrategyBeanName;

    /**
     * 是否支持该认证类型
     *
     * @param authType 认证类型
     * @return boolean
     */
    public static boolean isSupport(String authType) {
        try {
            UserAuthTypeEnum.valueOf(authType);
            return true;
        }catch (Exception ignored){}
        return false;
    }
}
